import org.springframework.util.concurrent.CompletableToListenableFutureAdapter;

import java.util.concurrent.CompletableFuture;

/**
 *  Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture。
 *  CompletableFuture类实现了CompletionStage接口，首先我们需要理解这个接口的契约。
 *  它代表了一个特定的计算的阶段，可以同步或者异步的被完成。你可以把它看成一个计算流水线上的一个单元，
 *  最终会产生一个最终结果，这意味着几个CompletionStage可以串联起来，一个完成的阶段可以触发下一阶段的执行，接着触发下一次，接着……
 *
 * 除了实现CompletionStage接口， CompletableFuture也实现了future接口, 代表一个未完成的异步事件。
 * CompletableFuture提供了方法，能够显式地完成这个future,所以它叫CompletableFuture。
 *
 * 1、创建一个完成的CompletableFuture
 *
 *
 *
 * */
public class Lesson1 {

    /**
     *  使用一个预定义的结果创建一个完成的CompletableFuture,
     *  通常我们会在计算的开始阶段使用它。
     *
     *  getNow(null)方法在future完成的情况下会返回结果，就比如上面这个例子，否则返回null (传入的参数)。
     * */
    public static void main(String[] args) {
        CompletableFuture<String> completableFuture = CompletableFuture.completedFuture("message");
        if(completableFuture.isDone()){
            System.out.println(completableFuture.getNow(null));
        }
    }
}
